package com.ourteam.product.requirement.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:27
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductRequirementDAOQueryBean extends BaseQueryBean {
    public ProductRequirementDAOQueryBean() {
        super();
    }

    public ProductRequirementDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductRequirementDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.Id, "id");
        }
    }

    public void addProductDefineIdSelectProperty() {
        addProductDefineIdSelectProperty("productDefineId");
    }

    public void addProductDefineIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.ProductDefineId, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.ProductDefineId,
                "productDefineId");
        }
    }

    public void addParentIdSelectProperty() {
        addParentIdSelectProperty("parentId");
    }

    public void addParentIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.ParentId, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.ParentId, "parentId");
        }
    }

    public void addRequestTypeSelectProperty() {
        addRequestTypeSelectProperty("requestType");
    }

    public void addRequestTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestType, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestType, "requestType");
        }
    }

    public void addRequestCodeSelectProperty() {
        addRequestCodeSelectProperty("requestCode");
    }

    public void addRequestCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestCode, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestCode, "requestCode");
        }
    }

    public void addRequestNameSelectProperty() {
        addRequestNameSelectProperty("requestName");
    }

    public void addRequestNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestName, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestName, "requestName");
        }
    }

    public void addRequestContentSelectProperty() {
        addRequestContentSelectProperty("requestContent");
    }

    public void addRequestContentSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestContent, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestContent,
                "requestContent");
        }
    }

    public void addRequestLevelSelectProperty() {
        addRequestLevelSelectProperty("requestLevel");
    }

    public void addRequestLevelSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestLevel, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestLevel,
                "requestLevel");
        }
    }

    public void addRequestRiskSelectProperty() {
        addRequestRiskSelectProperty("requestRisk");
    }

    public void addRequestRiskSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestRisk, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestRisk, "requestRisk");
        }
    }

    public void addProposerDateSelectProperty() {
        addProposerDateSelectProperty("proposerDate");
    }

    public void addProposerDateSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.ProposerDate, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.ProposerDate,
                "proposerDate");
        }
    }

    public void addProposerIdSelectProperty() {
        addProposerIdSelectProperty("proposerId");
    }

    public void addProposerIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.ProposerId, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.ProposerId, "proposerId");
        }
    }

    public void addCreatorIdSelectProperty() {
        addCreatorIdSelectProperty("creatorId");
    }

    public void addCreatorIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.CreatorId, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.CreatorId, "creatorId");
        }
    }

    public void addCreateDateSelectProperty() {
        addCreateDateSelectProperty("createDate");
    }

    public void addCreateDateSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.CreateDate, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.CreateDate, "createDate");
        }
    }

    public void addLastEditorIdSelectProperty() {
        addLastEditorIdSelectProperty("lastEditorId");
    }

    public void addLastEditorIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.LastEditorId, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.LastEditorId,
                "lastEditorId");
        }
    }

    public void addLastEditDateSelectProperty() {
        addLastEditDateSelectProperty("lastEditDate");
    }

    public void addLastEditDateSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.LastEditDate, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.LastEditDate,
                "lastEditDate");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.Remarks, "remarks");
        }
    }

    public void addSortIndexSelectProperty() {
        addSortIndexSelectProperty("sortIndex");
    }

    public void addSortIndexSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.SortIndex, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.SortIndex, "sortIndex");
        }
    }

    public void addIndentSelectProperty() {
        addIndentSelectProperty("indent");
    }

    public void addIndentSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.Indent, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.Indent, "indent");
        }
    }

    public void addRequestTriggerSelectProperty() {
        addRequestTriggerSelectProperty("requestTrigger");
    }

    public void addRequestTriggerSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestTrigger, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestTrigger,
                "requestTrigger");
        }
    }

    public void addPreconditionSelectProperty() {
        addPreconditionSelectProperty("precondition");
    }

    public void addPreconditionSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.Precondition, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.Precondition,
                "precondition");
        }
    }

    public void addRequestKindSelectProperty() {
        addRequestKindSelectProperty("requestKind");
    }

    public void addRequestKindSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestKind, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestKind, "requestKind");
        }
    }

    public void addRequestSourceSelectProperty() {
        addRequestSourceSelectProperty("requestSource");
    }

    public void addRequestSourceSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.RequestSource, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.RequestSource,
                "requestSource");
        }
    }

    public void addProposerNameSelectProperty() {
        addProposerNameSelectProperty("proposerName");
    }

    public void addProposerNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.ProposerName, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.ProposerName,
                "proposerName");
        }
    }

    public void addCreatorNameSelectProperty() {
        addCreatorNameSelectProperty("creatorName");
    }

    public void addCreatorNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.CreatorName, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.CreatorName, "creatorName");
        }
    }

    public void addLastEditorNameSelectProperty() {
        addLastEditorNameSelectProperty("lastEditorName");
    }

    public void addLastEditorNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementDAO.LastEditorName, aAlias);
        } else {
            addSelectProperty(IProductRequirementDAO.LastEditorName,
                "lastEditorName");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addProductDefineIdSelectProperty();

        addParentIdSelectProperty();

        addRequestTypeSelectProperty();

        addRequestCodeSelectProperty();

        addRequestNameSelectProperty();

        addRequestContentSelectProperty();

        addRequestLevelSelectProperty();

        addRequestRiskSelectProperty();

        addProposerDateSelectProperty();

        addProposerIdSelectProperty();

        addCreatorIdSelectProperty();

        addCreateDateSelectProperty();

        addLastEditorIdSelectProperty();

        addLastEditDateSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addSortIndexSelectProperty();

        addIndentSelectProperty();

        addRequestTriggerSelectProperty();

        addPreconditionSelectProperty();

        addRequestKindSelectProperty();

        addRequestSourceSelectProperty();

        addProposerNameSelectProperty();

        addCreatorNameSelectProperty();

        addLastEditorNameSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductRequirementDAOQueryBean> {
        protected Criteria(ProductRequirementDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductRequirementDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductRequirementDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductRequirementDAO.Id + " is not null AND " +
                IProductRequirementDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.Id + " is null OR " +
                IProductRequirementDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " is null OR " +
                IProductRequirementDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Id + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andProductDefineIdIsNull() {
            addCriterion(IProductRequirementDAO.ProductDefineId + " is null");

            return this;
        }

        public Criteria andProductDefineIdIsNotNull() {
            addCriterion(IProductRequirementDAO.ProductDefineId +
                " is not null");

            return this;
        }

        public Criteria andProductDefineIdIsNotEmpty() {
            addCriterion(IProductRequirementDAO.ProductDefineId +
                " is not null AND " + IProductRequirementDAO.ProductDefineId +
                " <> ''");

            return this;
        }

        public Criteria andProductDefineIdIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.ProductDefineId +
                " is null OR " + IProductRequirementDAO.ProductDefineId +
                " = '')");

            return this;
        }

        public Criteria andProductDefineIdEqualTo(long value) {
            return andProductDefineIdEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " = ", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProductDefineId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdNotEqualTo(long value) {
            return andProductDefineIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " <>", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotEqualToOrIsNull(long value) {
            return andProductDefineIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andProductDefineIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId +
                " is null OR " + IProductRequirementDAO.ProductDefineId +
                " <>", value, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProductDefineId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdGreaterThan(long value) {
            return andProductDefineIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andProductDefineIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " >", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProductDefineId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdGreaterThanOrEqualTo(long value) {
            return andProductDefineIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " >=", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProductDefineId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdLessThan(long value) {
            return andProductDefineIdLessThan(Long.valueOf(value));
        }

        public Criteria andProductDefineIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " <", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProductDefineId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdLessThanOrEqualTo(long value) {
            return andProductDefineIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProductDefineIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " <=", value,
                "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProductDefineId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProductDefineIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdIn(long[] values) {
            if (values.length == 1) {
                return andProductDefineIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProductDefineId + " in",
                    values, "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdNotIn(long[] values) {
            if (values.length == 1) {
                return andProductDefineIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProductDefineId +
                    " not in", values, "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProductDefineIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ProductDefineId + " in",
                    values, "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProductDefineIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ProductDefineId +
                    " not in", values, "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProductDefineIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProductDefineId + " in",
                    Arrays.asList(values), "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProductDefineIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProductDefineId +
                    " not in", Arrays.asList(values), "productDefineId");

                return this;
            }
        }

        public Criteria andProductDefineIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProductDefineIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " between",
                value1, value2, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.ProductDefineId + " between",
                value1, value2, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.ProductDefineId +
                " not between", value1, value2, "productDefineId");

            return this;
        }

        public Criteria andProductDefineIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.ProductDefineId +
                " not between", value1, value2, "productDefineId");

            return this;
        }

        public Criteria andParentIdIsNull() {
            addCriterion(IProductRequirementDAO.ParentId + " is null");

            return this;
        }

        public Criteria andParentIdIsNotNull() {
            addCriterion(IProductRequirementDAO.ParentId + " is not null");

            return this;
        }

        public Criteria andParentIdIsNotEmpty() {
            addCriterion(IProductRequirementDAO.ParentId + " is not null AND " +
                IProductRequirementDAO.ParentId + " <> ''");

            return this;
        }

        public Criteria andParentIdIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.ParentId +
                " is null OR " + IProductRequirementDAO.ParentId + " = '')");

            return this;
        }

        public Criteria andParentIdEqualTo(long value) {
            return andParentIdEqualTo(Long.valueOf(value));
        }

        public Criteria andParentIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " = ", value,
                "parentId");

            return this;
        }

        public Criteria andParentIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ParentId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andParentIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andParentIdNotEqualTo(long value) {
            return andParentIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andParentIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " <>", value,
                "parentId");

            return this;
        }

        public Criteria andParentIdNotEqualToOrIsNull(long value) {
            return andParentIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andParentIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " is null OR " +
                IProductRequirementDAO.ParentId + " <>", value, "parentId");

            return this;
        }

        public Criteria andParentIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ParentId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andParentIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andParentIdGreaterThan(long value) {
            return andParentIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andParentIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " >", value,
                "parentId");

            return this;
        }

        public Criteria andParentIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ParentId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andParentIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andParentIdGreaterThanOrEqualTo(long value) {
            return andParentIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andParentIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " >=", value,
                "parentId");

            return this;
        }

        public Criteria andParentIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ParentId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andParentIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andParentIdLessThan(long value) {
            return andParentIdLessThan(Long.valueOf(value));
        }

        public Criteria andParentIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " <", value,
                "parentId");

            return this;
        }

        public Criteria andParentIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ParentId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andParentIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andParentIdLessThanOrEqualTo(long value) {
            return andParentIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andParentIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ParentId + " <=", value,
                "parentId");

            return this;
        }

        public Criteria andParentIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ParentId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andParentIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andParentIdIn(long[] values) {
            if (values.length == 1) {
                return andParentIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ParentId + " in", values,
                    "parentId");

                return this;
            }
        }

        public Criteria andParentIdNotIn(long[] values) {
            if (values.length == 1) {
                return andParentIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ParentId + " not in",
                    values, "parentId");

                return this;
            }
        }

        public Criteria andParentIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andParentIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ParentId + " in", values,
                    "parentId");

                return this;
            }
        }

        public Criteria andParentIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andParentIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ParentId + " not in",
                    values, "parentId");

                return this;
            }
        }

        public Criteria andParentIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andParentIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ParentId + " in",
                    Arrays.asList(values), "parentId");

                return this;
            }
        }

        public Criteria andParentIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andParentIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ParentId + " not in",
                    Arrays.asList(values), "parentId");

                return this;
            }
        }

        public Criteria andParentIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andParentIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ParentId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andParentIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.ParentId + " between", value1,
                value2, "parentId");

            return this;
        }

        public Criteria andParentIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.ParentId + " between", value1,
                value2, "parentId");

            return this;
        }

        public Criteria andParentIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.ParentId + " not between",
                value1, value2, "parentId");

            return this;
        }

        public Criteria andParentIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.ParentId + " not between",
                value1, value2, "parentId");

            return this;
        }

        public Criteria andRequestTypeIsNull() {
            addCriterion(IProductRequirementDAO.RequestType + " is null");

            return this;
        }

        public Criteria andRequestTypeIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestType + " is not null");

            return this;
        }

        public Criteria andRequestTypeIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestType +
                " is not null AND " + IProductRequirementDAO.RequestType +
                " <> ''");

            return this;
        }

        public Criteria andRequestTypeIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestType +
                " is null OR " + IProductRequirementDAO.RequestType + " = '')");

            return this;
        }

        public Criteria andRequestTypeEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " = ", value,
                "requestType");

            return this;
        }

        public Criteria andRequestTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " <>", value,
                "requestType");

            return this;
        }

        public Criteria andRequestTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " is null OR " +
                IProductRequirementDAO.RequestType + " <>", value, "requestType");

            return this;
        }

        public Criteria andRequestTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " >", value,
                "requestType");

            return this;
        }

        public Criteria andRequestTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " >=", value,
                "requestType");

            return this;
        }

        public Criteria andRequestTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " <", value,
                "requestType");

            return this;
        }

        public Criteria andRequestTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestType + " <=", value,
                "requestType");

            return this;
        }

        public Criteria andRequestTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestType + " like",
                buffer.toString(), "requestType");

            return this;
        }

        public Criteria andRequestTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestType + " not like",
                buffer.toString(), "requestType");

            return this;
        }

        public Criteria andRequestTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestType + " in",
                    values, "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestType + " not in",
                    values, "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeIn(String[] values) {
            if (values.length == 1) {
                return andRequestTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestType + " in",
                    Arrays.asList(values), "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestType + " not in",
                    Arrays.asList(values), "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestType + " between",
                value1, value2, "requestType");

            return this;
        }

        public Criteria andRequestTypeNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestType + " not between",
                value1, value2, "requestType");

            return this;
        }

        public Criteria andRequestCodeIsNull() {
            addCriterion(IProductRequirementDAO.RequestCode + " is null");

            return this;
        }

        public Criteria andRequestCodeIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestCode + " is not null");

            return this;
        }

        public Criteria andRequestCodeIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestCode +
                " is not null AND " + IProductRequirementDAO.RequestCode +
                " <> ''");

            return this;
        }

        public Criteria andRequestCodeIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestCode +
                " is null OR " + IProductRequirementDAO.RequestCode + " = '')");

            return this;
        }

        public Criteria andRequestCodeEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " = ", value,
                "requestCode");

            return this;
        }

        public Criteria andRequestCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " <>", value,
                "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " is null OR " +
                IProductRequirementDAO.RequestCode + " <>", value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " >", value,
                "requestCode");

            return this;
        }

        public Criteria andRequestCodeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " >=", value,
                "requestCode");

            return this;
        }

        public Criteria andRequestCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " <", value,
                "requestCode");

            return this;
        }

        public Criteria andRequestCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestCode + " <=", value,
                "requestCode");

            return this;
        }

        public Criteria andRequestCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestCode + " like",
                buffer.toString(), "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestCode + " not like",
                buffer.toString(), "requestCode");

            return this;
        }

        public Criteria andRequestCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestCode + " in",
                    values, "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestCode + " not in",
                    values, "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeIn(String[] values) {
            if (values.length == 1) {
                return andRequestCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestCode + " in",
                    Arrays.asList(values), "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestCode + " not in",
                    Arrays.asList(values), "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestCode + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestCode + " between",
                value1, value2, "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestCode + " not between",
                value1, value2, "requestCode");

            return this;
        }

        public Criteria andRequestNameIsNull() {
            addCriterion(IProductRequirementDAO.RequestName + " is null");

            return this;
        }

        public Criteria andRequestNameIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestName + " is not null");

            return this;
        }

        public Criteria andRequestNameIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestName +
                " is not null AND " + IProductRequirementDAO.RequestName +
                " <> ''");

            return this;
        }

        public Criteria andRequestNameIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestName +
                " is null OR " + IProductRequirementDAO.RequestName + " = '')");

            return this;
        }

        public Criteria andRequestNameEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " = ", value,
                "requestName");

            return this;
        }

        public Criteria andRequestNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " <>", value,
                "requestName");

            return this;
        }

        public Criteria andRequestNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " is null OR " +
                IProductRequirementDAO.RequestName + " <>", value, "requestName");

            return this;
        }

        public Criteria andRequestNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " >", value,
                "requestName");

            return this;
        }

        public Criteria andRequestNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " >=", value,
                "requestName");

            return this;
        }

        public Criteria andRequestNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " <", value,
                "requestName");

            return this;
        }

        public Criteria andRequestNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestName + " <=", value,
                "requestName");

            return this;
        }

        public Criteria andRequestNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestName + " like",
                buffer.toString(), "requestName");

            return this;
        }

        public Criteria andRequestNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestName + " not like",
                buffer.toString(), "requestName");

            return this;
        }

        public Criteria andRequestNameIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestName + " in",
                    values, "requestName");

                return this;
            }
        }

        public Criteria andRequestNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestName + " not in",
                    values, "requestName");

                return this;
            }
        }

        public Criteria andRequestNameIn(String[] values) {
            if (values.length == 1) {
                return andRequestNameEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestName + " in",
                    Arrays.asList(values), "requestName");

                return this;
            }
        }

        public Criteria andRequestNameNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestName + " not in",
                    Arrays.asList(values), "requestName");

                return this;
            }
        }

        public Criteria andRequestNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestName + " between",
                value1, value2, "requestName");

            return this;
        }

        public Criteria andRequestNameNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestName + " not between",
                value1, value2, "requestName");

            return this;
        }

        public Criteria andRequestContentIsNull() {
            addCriterion(IProductRequirementDAO.RequestContent + " is null");

            return this;
        }

        public Criteria andRequestContentIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestContent +
                " is not null");

            return this;
        }

        public Criteria andRequestContentIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestContent +
                " is not null AND " + IProductRequirementDAO.RequestContent +
                " <> ''");

            return this;
        }

        public Criteria andRequestContentIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestContent +
                " is null OR " + IProductRequirementDAO.RequestContent +
                " = '')");

            return this;
        }

        public Criteria andRequestContentEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestContent + " = ", value,
                "requestContent");

            return this;
        }

        public Criteria andRequestContentEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestContent);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestContent + " <>", value,
                "requestContent");

            return this;
        }

        public Criteria andRequestContentNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestContent +
                " is null OR " + IProductRequirementDAO.RequestContent + " <>",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestContent);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestContent + " >", value,
                "requestContent");

            return this;
        }

        public Criteria andRequestContentGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestContent);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestContent + " >=", value,
                "requestContent");

            return this;
        }

        public Criteria andRequestContentGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestContent);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestContent + " <", value,
                "requestContent");

            return this;
        }

        public Criteria andRequestContentLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestContent);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestContent + " <=", value,
                "requestContent");

            return this;
        }

        public Criteria andRequestContentLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestContent);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestContent + " like",
                buffer.toString(), "requestContent");

            return this;
        }

        public Criteria andRequestContentNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestContent + " not like",
                buffer.toString(), "requestContent");

            return this;
        }

        public Criteria andRequestContentIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestContentEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestContent + " in",
                    values, "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestContentNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestContent + " not in",
                    values, "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentIn(String[] values) {
            if (values.length == 1) {
                return andRequestContentEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestContent + " in",
                    Arrays.asList(values), "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestContentNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestContent + " not in",
                    Arrays.asList(values), "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestContent + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestContent + " between",
                value1, value2, "requestContent");

            return this;
        }

        public Criteria andRequestContentNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestContent +
                " not between", value1, value2, "requestContent");

            return this;
        }

        public Criteria andRequestLevelIsNull() {
            addCriterion(IProductRequirementDAO.RequestLevel + " is null");

            return this;
        }

        public Criteria andRequestLevelIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestLevel + " is not null");

            return this;
        }

        public Criteria andRequestLevelIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestLevel +
                " is not null AND " + IProductRequirementDAO.RequestLevel +
                " <> ''");

            return this;
        }

        public Criteria andRequestLevelIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestLevel +
                " is null OR " + IProductRequirementDAO.RequestLevel +
                " = '')");

            return this;
        }

        public Criteria andRequestLevelEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " = ", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestLevel);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " <>", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " is null OR " +
                IProductRequirementDAO.RequestLevel + " <>", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestLevel);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " >", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestLevel);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " >=", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestLevel);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " <", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestLevel);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestLevel + " <=", value,
                "requestLevel");

            return this;
        }

        public Criteria andRequestLevelLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestLevel);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestLevel + " like",
                buffer.toString(), "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestLevel + " not like",
                buffer.toString(), "requestLevel");

            return this;
        }

        public Criteria andRequestLevelIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestLevelEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestLevel + " in",
                    values, "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestLevelNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestLevel + " not in",
                    values, "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelIn(String[] values) {
            if (values.length == 1) {
                return andRequestLevelEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestLevel + " in",
                    Arrays.asList(values), "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestLevelNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestLevel + " not in",
                    Arrays.asList(values), "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestLevel + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestLevel + " between",
                value1, value2, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestLevel + " not between",
                value1, value2, "requestLevel");

            return this;
        }

        public Criteria andRequestRiskIsNull() {
            addCriterion(IProductRequirementDAO.RequestRisk + " is null");

            return this;
        }

        public Criteria andRequestRiskIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestRisk + " is not null");

            return this;
        }

        public Criteria andRequestRiskIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestRisk +
                " is not null AND " + IProductRequirementDAO.RequestRisk +
                " <> ''");

            return this;
        }

        public Criteria andRequestRiskIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestRisk +
                " is null OR " + IProductRequirementDAO.RequestRisk + " = '')");

            return this;
        }

        public Criteria andRequestRiskEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " = ", value,
                "requestRisk");

            return this;
        }

        public Criteria andRequestRiskEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestRisk);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestRiskEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " <>", value,
                "requestRisk");

            return this;
        }

        public Criteria andRequestRiskNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " is null OR " +
                IProductRequirementDAO.RequestRisk + " <>", value, "requestRisk");

            return this;
        }

        public Criteria andRequestRiskNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestRisk);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestRiskNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " >", value,
                "requestRisk");

            return this;
        }

        public Criteria andRequestRiskGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestRisk);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestRiskGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " >=", value,
                "requestRisk");

            return this;
        }

        public Criteria andRequestRiskGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestRisk);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestRiskGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " <", value,
                "requestRisk");

            return this;
        }

        public Criteria andRequestRiskLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestRisk);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestRiskLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestRisk + " <=", value,
                "requestRisk");

            return this;
        }

        public Criteria andRequestRiskLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestRisk);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestRiskLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestRisk + " like",
                buffer.toString(), "requestRisk");

            return this;
        }

        public Criteria andRequestRiskNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestRisk + " not like",
                buffer.toString(), "requestRisk");

            return this;
        }

        public Criteria andRequestRiskIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestRiskEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestRisk + " in",
                    values, "requestRisk");

                return this;
            }
        }

        public Criteria andRequestRiskNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestRiskNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestRisk + " not in",
                    values, "requestRisk");

                return this;
            }
        }

        public Criteria andRequestRiskIn(String[] values) {
            if (values.length == 1) {
                return andRequestRiskEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestRisk + " in",
                    Arrays.asList(values), "requestRisk");

                return this;
            }
        }

        public Criteria andRequestRiskNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestRiskNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestRisk + " not in",
                    Arrays.asList(values), "requestRisk");

                return this;
            }
        }

        public Criteria andRequestRiskIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestRisk + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestRiskBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestRisk + " between",
                value1, value2, "requestRisk");

            return this;
        }

        public Criteria andRequestRiskNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestRisk + " not between",
                value1, value2, "requestRisk");

            return this;
        }

        public Criteria andProposerDateIsNull() {
            addCriterion(IProductRequirementDAO.ProposerDate + " is null");

            return this;
        }

        public Criteria andProposerDateIsNotNull() {
            addCriterion(IProductRequirementDAO.ProposerDate + " is not null");

            return this;
        }

        public Criteria andProposerDateIsNotEmpty() {
            addCriterion(IProductRequirementDAO.ProposerDate +
                " is not null AND " + IProductRequirementDAO.ProposerDate +
                " <> ''");

            return this;
        }

        public Criteria andProposerDateIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.ProposerDate +
                " is null OR " + IProductRequirementDAO.ProposerDate +
                " = '')");

            return this;
        }

        public Criteria andProposerDateEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " = ", value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerDate);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerDateEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " <>", value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " is null OR " + IProductRequirementDAO.ProposerDate + " <>",
                value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerDate);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerDateNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate + " >",
                value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerDate);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerDateGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " >=", value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerDate);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerDateGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate + " <",
                value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerDate);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerDateLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " <=", value, "proposerDate");

            return this;
        }

        public Criteria andProposerDateLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerDate);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerDateLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andProposerDateEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                    " in", values, "proposerDate");

                return this;
            }
        }

        public Criteria andProposerDateNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andProposerDateNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                    " not in", values, "proposerDate");

                return this;
            }
        }

        public Criteria andProposerDateIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andProposerDateEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                    " in", Arrays.asList(values), "proposerDate");

                return this;
            }
        }

        public Criteria andProposerDateNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andProposerDateNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                    " not in", Arrays.asList(values), "proposerDate");

                return this;
            }
        }

        public Criteria andProposerDateIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerDate + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerDateBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " between", value1, value2, "proposerDate");

            return this;
        }

        public Criteria andProposerDateNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductRequirementDAO.ProposerDate +
                " not between", value1, value2, "proposerDate");

            return this;
        }

        public Criteria andProposerIdIsNull() {
            addCriterion(IProductRequirementDAO.ProposerId + " is null");

            return this;
        }

        public Criteria andProposerIdIsNotNull() {
            addCriterion(IProductRequirementDAO.ProposerId + " is not null");

            return this;
        }

        public Criteria andProposerIdIsNotEmpty() {
            addCriterion(IProductRequirementDAO.ProposerId +
                " is not null AND " + IProductRequirementDAO.ProposerId +
                " <> ''");

            return this;
        }

        public Criteria andProposerIdIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.ProposerId +
                " is null OR " + IProductRequirementDAO.ProposerId + " = '')");

            return this;
        }

        public Criteria andProposerIdEqualTo(long value) {
            return andProposerIdEqualTo(Long.valueOf(value));
        }

        public Criteria andProposerIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " = ", value,
                "proposerId");

            return this;
        }

        public Criteria andProposerIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdNotEqualTo(long value) {
            return andProposerIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andProposerIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " <>", value,
                "proposerId");

            return this;
        }

        public Criteria andProposerIdNotEqualToOrIsNull(long value) {
            return andProposerIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andProposerIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " is null OR " +
                IProductRequirementDAO.ProposerId + " <>", value, "proposerId");

            return this;
        }

        public Criteria andProposerIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdGreaterThan(long value) {
            return andProposerIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andProposerIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " >", value,
                "proposerId");

            return this;
        }

        public Criteria andProposerIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdGreaterThanOrEqualTo(long value) {
            return andProposerIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProposerIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " >=", value,
                "proposerId");

            return this;
        }

        public Criteria andProposerIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdLessThan(long value) {
            return andProposerIdLessThan(Long.valueOf(value));
        }

        public Criteria andProposerIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " <", value,
                "proposerId");

            return this;
        }

        public Criteria andProposerIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdLessThanOrEqualTo(long value) {
            return andProposerIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProposerIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.ProposerId + " <=", value,
                "proposerId");

            return this;
        }

        public Criteria andProposerIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdIn(long[] values) {
            if (values.length == 1) {
                return andProposerIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProposerId + " in", values,
                    "proposerId");

                return this;
            }
        }

        public Criteria andProposerIdNotIn(long[] values) {
            if (values.length == 1) {
                return andProposerIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProposerId + " not in",
                    values, "proposerId");

                return this;
            }
        }

        public Criteria andProposerIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProposerIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ProposerId + " in", values,
                    "proposerId");

                return this;
            }
        }

        public Criteria andProposerIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProposerIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ProposerId + " not in",
                    values, "proposerId");

                return this;
            }
        }

        public Criteria andProposerIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProposerIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProposerId + " in",
                    Arrays.asList(values), "proposerId");

                return this;
            }
        }

        public Criteria andProposerIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProposerIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProposerId + " not in",
                    Arrays.asList(values), "proposerId");

                return this;
            }
        }

        public Criteria andProposerIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.ProposerId + " between",
                value1, value2, "proposerId");

            return this;
        }

        public Criteria andProposerIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.ProposerId + " between",
                value1, value2, "proposerId");

            return this;
        }

        public Criteria andProposerIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.ProposerId + " not between",
                value1, value2, "proposerId");

            return this;
        }

        public Criteria andProposerIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.ProposerId + " not between",
                value1, value2, "proposerId");

            return this;
        }

        public Criteria andCreatorIdIsNull() {
            addCriterion(IProductRequirementDAO.CreatorId + " is null");

            return this;
        }

        public Criteria andCreatorIdIsNotNull() {
            addCriterion(IProductRequirementDAO.CreatorId + " is not null");

            return this;
        }

        public Criteria andCreatorIdIsNotEmpty() {
            addCriterion(IProductRequirementDAO.CreatorId +
                " is not null AND " + IProductRequirementDAO.CreatorId +
                " <> ''");

            return this;
        }

        public Criteria andCreatorIdIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.CreatorId +
                " is null OR " + IProductRequirementDAO.CreatorId + " = '')");

            return this;
        }

        public Criteria andCreatorIdEqualTo(long value) {
            return andCreatorIdEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " = ", value,
                "creatorId");

            return this;
        }

        public Criteria andCreatorIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdNotEqualTo(long value) {
            return andCreatorIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " <>", value,
                "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotEqualToOrIsNull(long value) {
            return andCreatorIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andCreatorIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " is null OR " +
                IProductRequirementDAO.CreatorId + " <>", value, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdGreaterThan(long value) {
            return andCreatorIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andCreatorIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " >", value,
                "creatorId");

            return this;
        }

        public Criteria andCreatorIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(long value) {
            return andCreatorIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " >=", value,
                "creatorId");

            return this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdLessThan(long value) {
            return andCreatorIdLessThan(Long.valueOf(value));
        }

        public Criteria andCreatorIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " <", value,
                "creatorId");

            return this;
        }

        public Criteria andCreatorIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdLessThanOrEqualTo(long value) {
            return andCreatorIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andCreatorIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.CreatorId + " <=", value,
                "creatorId");

            return this;
        }

        public Criteria andCreatorIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdIn(long[] values) {
            if (values.length == 1) {
                return andCreatorIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.CreatorId + " in", values,
                    "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdNotIn(long[] values) {
            if (values.length == 1) {
                return andCreatorIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.CreatorId + " not in",
                    values, "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andCreatorIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.CreatorId + " in", values,
                    "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andCreatorIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.CreatorId + " not in",
                    values, "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andCreatorIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.CreatorId + " in",
                    Arrays.asList(values), "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andCreatorIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.CreatorId + " not in",
                    Arrays.asList(values), "creatorId");

                return this;
            }
        }

        public Criteria andCreatorIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.CreatorId + " between", value1,
                value2, "creatorId");

            return this;
        }

        public Criteria andCreatorIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.CreatorId + " between", value1,
                value2, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.CreatorId + " not between",
                value1, value2, "creatorId");

            return this;
        }

        public Criteria andCreatorIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.CreatorId + " not between",
                value1, value2, "creatorId");

            return this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion(IProductRequirementDAO.CreateDate + " is null");

            return this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion(IProductRequirementDAO.CreateDate + " is not null");

            return this;
        }

        public Criteria andCreateDateIsNotEmpty() {
            addCriterion(IProductRequirementDAO.CreateDate +
                " is not null AND " + IProductRequirementDAO.CreateDate +
                " <> ''");

            return this;
        }

        public Criteria andCreateDateIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.CreateDate +
                " is null OR " + IProductRequirementDAO.CreateDate + " = '')");

            return this;
        }

        public Criteria andCreateDateEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate + " = ",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreateDate);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateDateEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate + " <>",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                " is null OR " + IProductRequirementDAO.CreateDate + " <>",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreateDate);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateDateNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate + " >",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreateDate);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateDateGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate + " >=",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreateDate);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate + " <",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreateDate);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateDateLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate + " <=",
                value, "createDate");

            return this;
        }

        public Criteria andCreateDateLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreateDate);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateDateEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                    " in", values, "createDate");

                return this;
            }
        }

        public Criteria andCreateDateNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andCreateDateNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                    " not in", values, "createDate");

                return this;
            }
        }

        public Criteria andCreateDateIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateDateEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                    " in", Arrays.asList(values), "createDate");

                return this;
            }
        }

        public Criteria andCreateDateNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andCreateDateNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                    " not in", Arrays.asList(values), "createDate");

                return this;
            }
        }

        public Criteria andCreateDateIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreateDate + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreateDateBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                " between", value1, value2, "createDate");

            return this;
        }

        public Criteria andCreateDateNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductRequirementDAO.CreateDate +
                " not between", value1, value2, "createDate");

            return this;
        }

        public Criteria andLastEditorIdIsNull() {
            addCriterion(IProductRequirementDAO.LastEditorId + " is null");

            return this;
        }

        public Criteria andLastEditorIdIsNotNull() {
            addCriterion(IProductRequirementDAO.LastEditorId + " is not null");

            return this;
        }

        public Criteria andLastEditorIdIsNotEmpty() {
            addCriterion(IProductRequirementDAO.LastEditorId +
                " is not null AND " + IProductRequirementDAO.LastEditorId +
                " <> ''");

            return this;
        }

        public Criteria andLastEditorIdIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.LastEditorId +
                " is null OR " + IProductRequirementDAO.LastEditorId +
                " = '')");

            return this;
        }

        public Criteria andLastEditorIdEqualTo(long value) {
            return andLastEditorIdEqualTo(Long.valueOf(value));
        }

        public Criteria andLastEditorIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " = ", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdNotEqualTo(long value) {
            return andLastEditorIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andLastEditorIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " <>", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdNotEqualToOrIsNull(long value) {
            return andLastEditorIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andLastEditorIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " is null OR " +
                IProductRequirementDAO.LastEditorId + " <>", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdGreaterThan(long value) {
            return andLastEditorIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andLastEditorIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " >", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdGreaterThanOrEqualTo(long value) {
            return andLastEditorIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andLastEditorIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " >=", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdLessThan(long value) {
            return andLastEditorIdLessThan(Long.valueOf(value));
        }

        public Criteria andLastEditorIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " <", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdLessThanOrEqualTo(long value) {
            return andLastEditorIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andLastEditorIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementDAO.LastEditorId + " <=", value,
                "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdIn(long[] values) {
            if (values.length == 1) {
                return andLastEditorIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.LastEditorId + " in",
                    values, "lastEditorId");

                return this;
            }
        }

        public Criteria andLastEditorIdNotIn(long[] values) {
            if (values.length == 1) {
                return andLastEditorIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.LastEditorId + " not in",
                    values, "lastEditorId");

                return this;
            }
        }

        public Criteria andLastEditorIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andLastEditorIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.LastEditorId + " in",
                    values, "lastEditorId");

                return this;
            }
        }

        public Criteria andLastEditorIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andLastEditorIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.LastEditorId + " not in",
                    values, "lastEditorId");

                return this;
            }
        }

        public Criteria andLastEditorIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andLastEditorIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.LastEditorId + " in",
                    Arrays.asList(values), "lastEditorId");

                return this;
            }
        }

        public Criteria andLastEditorIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andLastEditorIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.LastEditorId + " not in",
                    Arrays.asList(values), "lastEditorId");

                return this;
            }
        }

        public Criteria andLastEditorIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.LastEditorId + " between",
                value1, value2, "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.LastEditorId + " between",
                value1, value2, "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementDAO.LastEditorId + " not between",
                value1, value2, "lastEditorId");

            return this;
        }

        public Criteria andLastEditorIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementDAO.LastEditorId + " not between",
                value1, value2, "lastEditorId");

            return this;
        }

        public Criteria andLastEditDateIsNull() {
            addCriterion(IProductRequirementDAO.LastEditDate + " is null");

            return this;
        }

        public Criteria andLastEditDateIsNotNull() {
            addCriterion(IProductRequirementDAO.LastEditDate + " is not null");

            return this;
        }

        public Criteria andLastEditDateIsNotEmpty() {
            addCriterion(IProductRequirementDAO.LastEditDate +
                " is not null AND " + IProductRequirementDAO.LastEditDate +
                " <> ''");

            return this;
        }

        public Criteria andLastEditDateIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.LastEditDate +
                " is null OR " + IProductRequirementDAO.LastEditDate +
                " = '')");

            return this;
        }

        public Criteria andLastEditDateEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " = ", value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditDate);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditDateEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " <>", value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " is null OR " + IProductRequirementDAO.LastEditDate + " <>",
                value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditDate);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditDateNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate + " >",
                value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditDate);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditDateGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " >=", value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditDate);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditDateGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate + " <",
                value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditDate);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditDateLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " <=", value, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditDate);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditDateLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastEditDateEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                    " in", values, "lastEditDate");

                return this;
            }
        }

        public Criteria andLastEditDateNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastEditDateNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                    " not in", values, "lastEditDate");

                return this;
            }
        }

        public Criteria andLastEditDateIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastEditDateEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                    " in", Arrays.asList(values), "lastEditDate");

                return this;
            }
        }

        public Criteria andLastEditDateNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastEditDateNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                    " not in", Arrays.asList(values), "lastEditDate");

                return this;
            }
        }

        public Criteria andLastEditDateIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditDate + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditDateBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " between", value1, value2, "lastEditDate");

            return this;
        }

        public Criteria andLastEditDateNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductRequirementDAO.LastEditDate +
                " not between", value1, value2, "lastEditDate");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductRequirementDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductRequirementDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductRequirementDAO.Status + " is not null AND " +
                IProductRequirementDAO.Status + " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.Status + " is null OR " +
                IProductRequirementDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Status + " = ", value, "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.Status + " is null OR " +
                IProductRequirementDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.Status + " >", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Status + " >=", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductRequirementDAO.Status + " <", value, "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Status + " <=", value, "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Status + " in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Status + " not in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.Status + " between", value1,
                value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductRequirementDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductRequirementDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductRequirementDAO.Remarks + " is not null AND " +
                IProductRequirementDAO.Remarks + " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.Remarks + " is null OR " +
                IProductRequirementDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " is null OR " +
                IProductRequirementDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " >", value, "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " <", value, "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Remarks + " in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.Remarks + " between", value1,
                value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andSortIndexIsNull() {
            addCriterion(IProductRequirementDAO.SortIndex + " is null");

            return this;
        }

        public Criteria andSortIndexIsNotNull() {
            addCriterion(IProductRequirementDAO.SortIndex + " is not null");

            return this;
        }

        public Criteria andSortIndexIsNotEmpty() {
            addCriterion(IProductRequirementDAO.SortIndex +
                " is not null AND " + IProductRequirementDAO.SortIndex +
                " <> ''");

            return this;
        }

        public Criteria andSortIndexIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.SortIndex +
                " is null OR " + IProductRequirementDAO.SortIndex + " = '')");

            return this;
        }

        public Criteria andSortIndexEqualTo(int value) {
            return andSortIndexEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " = ", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.SortIndex);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexNotEqualTo(int value) {
            return andSortIndexNotEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexNotEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " <>", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotEqualToOrIsNull(int value) {
            return andSortIndexNotEqualToOrIsNull(Integer.valueOf(value));
        }

        public Criteria andSortIndexNotEqualToOrIsNull(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " is null OR " +
                IProductRequirementDAO.SortIndex + " <>", value, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.SortIndex);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexGreaterThan(int value) {
            return andSortIndexGreaterThan(Integer.valueOf(value));
        }

        public Criteria andSortIndexGreaterThan(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " >", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.SortIndex);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(int value) {
            return andSortIndexGreaterThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(
            java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " >=", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.SortIndex);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexLessThan(int value) {
            return andSortIndexLessThan(Integer.valueOf(value));
        }

        public Criteria andSortIndexLessThan(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " <", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.SortIndex);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualTo(int value) {
            return andSortIndexLessThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andSortIndexLessThanOrEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.SortIndex + " <=", value,
                "sortIndex");

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.SortIndex);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andSortIndexLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexIn(int[] values) {
            if (values.length == 1) {
                return andSortIndexEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.SortIndex + " in", values,
                    "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(int[] values) {
            if (values.length == 1) {
                return andSortIndexNotEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.SortIndex + " not in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andSortIndexEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.SortIndex + " in", values,
                    "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andSortIndexNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.SortIndex + " not in",
                    values, "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andSortIndexEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.SortIndex + " in",
                    Arrays.asList(values), "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexNotIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andSortIndexNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.SortIndex + " not in",
                    Arrays.asList(values), "sortIndex");

                return this;
            }
        }

        public Criteria andSortIndexIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.SortIndex + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andSortIndexBetween(int value1, int value2) {
            addCriterion(IProductRequirementDAO.SortIndex + " between", value1,
                value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductRequirementDAO.SortIndex + " between", value1,
                value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotBetween(int value1, int value2) {
            addCriterion(IProductRequirementDAO.SortIndex + " not between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andSortIndexNotBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductRequirementDAO.SortIndex + " not between",
                value1, value2, "sortIndex");

            return this;
        }

        public Criteria andIndentIsNull() {
            addCriterion(IProductRequirementDAO.Indent + " is null");

            return this;
        }

        public Criteria andIndentIsNotNull() {
            addCriterion(IProductRequirementDAO.Indent + " is not null");

            return this;
        }

        public Criteria andIndentIsNotEmpty() {
            addCriterion(IProductRequirementDAO.Indent + " is not null AND " +
                IProductRequirementDAO.Indent + " <> ''");

            return this;
        }

        public Criteria andIndentIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.Indent + " is null OR " +
                IProductRequirementDAO.Indent + " = '')");

            return this;
        }

        public Criteria andIndentEqualTo(int value) {
            return andIndentEqualTo(Integer.valueOf(value));
        }

        public Criteria andIndentEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " = ", value, "indent");

            return this;
        }

        public Criteria andIndentEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Indent);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIndentEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentNotEqualTo(int value) {
            return andIndentNotEqualTo(Integer.valueOf(value));
        }

        public Criteria andIndentNotEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " <>", value, "indent");

            return this;
        }

        public Criteria andIndentNotEqualToOrIsNull(int value) {
            return andIndentNotEqualToOrIsNull(Integer.valueOf(value));
        }

        public Criteria andIndentNotEqualToOrIsNull(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " is null OR " +
                IProductRequirementDAO.Indent + " <>", value, "indent");

            return this;
        }

        public Criteria andIndentNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Indent);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIndentNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentGreaterThan(int value) {
            return andIndentGreaterThan(Integer.valueOf(value));
        }

        public Criteria andIndentGreaterThan(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " >", value, "indent");

            return this;
        }

        public Criteria andIndentGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Indent);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIndentGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentGreaterThanOrEqualTo(int value) {
            return andIndentGreaterThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andIndentGreaterThanOrEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " >=", value, "indent");

            return this;
        }

        public Criteria andIndentGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Indent);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIndentGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentLessThan(int value) {
            return andIndentLessThan(Integer.valueOf(value));
        }

        public Criteria andIndentLessThan(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " <", value, "indent");

            return this;
        }

        public Criteria andIndentLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Indent);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIndentLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentLessThanOrEqualTo(int value) {
            return andIndentLessThanOrEqualTo(Integer.valueOf(value));
        }

        public Criteria andIndentLessThanOrEqualTo(java.lang.Integer value) {
            addCriterion(IProductRequirementDAO.Indent + " <=", value, "indent");

            return this;
        }

        public Criteria andIndentLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Indent);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIndentLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentIn(int[] values) {
            if (values.length == 1) {
                return andIndentEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Indent + " in", values,
                    "indent");

                return this;
            }
        }

        public Criteria andIndentNotIn(int[] values) {
            if (values.length == 1) {
                return andIndentNotEqualTo((java.lang.Integer) values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Indent + " not in", values,
                    "indent");

                return this;
            }
        }

        public Criteria andIndentIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andIndentEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Indent + " in", values,
                    "indent");

                return this;
            }
        }

        public Criteria andIndentNotIn(List<java.lang.Integer> values) {
            if (values.size() == 1) {
                return andIndentNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Indent + " not in", values,
                    "indent");

                return this;
            }
        }

        public Criteria andIndentIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andIndentEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Indent + " in",
                    Arrays.asList(values), "indent");

                return this;
            }
        }

        public Criteria andIndentNotIn(java.lang.Integer[] values) {
            if (values.length == 1) {
                return andIndentNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Indent + " not in",
                    Arrays.asList(values), "indent");

                return this;
            }
        }

        public Criteria andIndentIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIndentNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Indent + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIndentBetween(int value1, int value2) {
            addCriterion(IProductRequirementDAO.Indent + " between", value1,
                value2, "indent");

            return this;
        }

        public Criteria andIndentBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductRequirementDAO.Indent + " between", value1,
                value2, "indent");

            return this;
        }

        public Criteria andIndentNotBetween(int value1, int value2) {
            addCriterion(IProductRequirementDAO.Indent + " not between",
                value1, value2, "indent");

            return this;
        }

        public Criteria andIndentNotBetween(java.lang.Integer value1,
            java.lang.Integer value2) {
            addCriterion(IProductRequirementDAO.Indent + " not between",
                value1, value2, "indent");

            return this;
        }

        public Criteria andRequestTriggerIsNull() {
            addCriterion(IProductRequirementDAO.RequestTrigger + " is null");

            return this;
        }

        public Criteria andRequestTriggerIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestTrigger +
                " is not null");

            return this;
        }

        public Criteria andRequestTriggerIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestTrigger +
                " is not null AND " + IProductRequirementDAO.RequestTrigger +
                " <> ''");

            return this;
        }

        public Criteria andRequestTriggerIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestTrigger +
                " is null OR " + IProductRequirementDAO.RequestTrigger +
                " = '')");

            return this;
        }

        public Criteria andRequestTriggerEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " = ", value,
                "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestTrigger);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTriggerEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " <>", value,
                "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger +
                " is null OR " + IProductRequirementDAO.RequestTrigger + " <>",
                value, "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestTrigger);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTriggerNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " >", value,
                "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestTrigger);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTriggerGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " >=", value,
                "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestTrigger);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTriggerGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " <", value,
                "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestTrigger);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTriggerLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " <=", value,
                "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestTrigger);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTriggerLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestTrigger + " like",
                buffer.toString(), "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestTrigger + " not like",
                buffer.toString(), "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestTriggerEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestTrigger + " in",
                    values, "requestTrigger");

                return this;
            }
        }

        public Criteria andRequestTriggerNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestTriggerNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestTrigger + " not in",
                    values, "requestTrigger");

                return this;
            }
        }

        public Criteria andRequestTriggerIn(String[] values) {
            if (values.length == 1) {
                return andRequestTriggerEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestTrigger + " in",
                    Arrays.asList(values), "requestTrigger");

                return this;
            }
        }

        public Criteria andRequestTriggerNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestTriggerNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestTrigger + " not in",
                    Arrays.asList(values), "requestTrigger");

                return this;
            }
        }

        public Criteria andRequestTriggerIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTriggerBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestTrigger + " between",
                value1, value2, "requestTrigger");

            return this;
        }

        public Criteria andRequestTriggerNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestTrigger +
                " not between", value1, value2, "requestTrigger");

            return this;
        }

        public Criteria andPreconditionIsNull() {
            addCriterion(IProductRequirementDAO.Precondition + " is null");

            return this;
        }

        public Criteria andPreconditionIsNotNull() {
            addCriterion(IProductRequirementDAO.Precondition + " is not null");

            return this;
        }

        public Criteria andPreconditionIsNotEmpty() {
            addCriterion(IProductRequirementDAO.Precondition +
                " is not null AND " + IProductRequirementDAO.Precondition +
                " <> ''");

            return this;
        }

        public Criteria andPreconditionIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.Precondition +
                " is null OR " + IProductRequirementDAO.Precondition +
                " = '')");

            return this;
        }

        public Criteria andPreconditionEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " = ", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Precondition);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPreconditionEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " <>", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " is null OR " +
                IProductRequirementDAO.Precondition + " <>", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Precondition);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPreconditionNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " >", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Precondition);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPreconditionGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " >=", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Precondition);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPreconditionGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionLessThan(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " <", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Precondition);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPreconditionLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.Precondition + " <=", value,
                "precondition");

            return this;
        }

        public Criteria andPreconditionLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.Precondition);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPreconditionLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.Precondition + " like",
                buffer.toString(), "precondition");

            return this;
        }

        public Criteria andPreconditionNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.Precondition + " not like",
                buffer.toString(), "precondition");

            return this;
        }

        public Criteria andPreconditionIn(List<String> values) {
            if (values.size() == 1) {
                return andPreconditionEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Precondition + " in",
                    values, "precondition");

                return this;
            }
        }

        public Criteria andPreconditionNotIn(List<String> values) {
            if (values.size() == 1) {
                return andPreconditionNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.Precondition + " not in",
                    values, "precondition");

                return this;
            }
        }

        public Criteria andPreconditionIn(String[] values) {
            if (values.length == 1) {
                return andPreconditionEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Precondition + " in",
                    Arrays.asList(values), "precondition");

                return this;
            }
        }

        public Criteria andPreconditionNotIn(String[] values) {
            if (values.length == 1) {
                return andPreconditionNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.Precondition + " not in",
                    Arrays.asList(values), "precondition");

                return this;
            }
        }

        public Criteria andPreconditionIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.Precondition + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPreconditionBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.Precondition + " between",
                value1, value2, "precondition");

            return this;
        }

        public Criteria andPreconditionNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.Precondition + " not between",
                value1, value2, "precondition");

            return this;
        }

        public Criteria andRequestKindIsNull() {
            addCriterion(IProductRequirementDAO.RequestKind + " is null");

            return this;
        }

        public Criteria andRequestKindIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestKind + " is not null");

            return this;
        }

        public Criteria andRequestKindIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestKind +
                " is not null AND " + IProductRequirementDAO.RequestKind +
                " <> ''");

            return this;
        }

        public Criteria andRequestKindIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestKind +
                " is null OR " + IProductRequirementDAO.RequestKind + " = '')");

            return this;
        }

        public Criteria andRequestKindEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " = ", value,
                "requestKind");

            return this;
        }

        public Criteria andRequestKindEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestKind);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestKindEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " <>", value,
                "requestKind");

            return this;
        }

        public Criteria andRequestKindNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " is null OR " +
                IProductRequirementDAO.RequestKind + " <>", value, "requestKind");

            return this;
        }

        public Criteria andRequestKindNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestKind);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestKindNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " >", value,
                "requestKind");

            return this;
        }

        public Criteria andRequestKindGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestKind);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestKindGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " >=", value,
                "requestKind");

            return this;
        }

        public Criteria andRequestKindGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestKind);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestKindGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " <", value,
                "requestKind");

            return this;
        }

        public Criteria andRequestKindLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestKind);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestKindLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestKind + " <=", value,
                "requestKind");

            return this;
        }

        public Criteria andRequestKindLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestKind);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestKindLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestKind + " like",
                buffer.toString(), "requestKind");

            return this;
        }

        public Criteria andRequestKindNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestKind + " not like",
                buffer.toString(), "requestKind");

            return this;
        }

        public Criteria andRequestKindIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestKindEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestKind + " in",
                    values, "requestKind");

                return this;
            }
        }

        public Criteria andRequestKindNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestKindNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestKind + " not in",
                    values, "requestKind");

                return this;
            }
        }

        public Criteria andRequestKindIn(String[] values) {
            if (values.length == 1) {
                return andRequestKindEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestKind + " in",
                    Arrays.asList(values), "requestKind");

                return this;
            }
        }

        public Criteria andRequestKindNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestKindNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestKind + " not in",
                    Arrays.asList(values), "requestKind");

                return this;
            }
        }

        public Criteria andRequestKindIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestKind + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestKindBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestKind + " between",
                value1, value2, "requestKind");

            return this;
        }

        public Criteria andRequestKindNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestKind + " not between",
                value1, value2, "requestKind");

            return this;
        }

        public Criteria andRequestSourceIsNull() {
            addCriterion(IProductRequirementDAO.RequestSource + " is null");

            return this;
        }

        public Criteria andRequestSourceIsNotNull() {
            addCriterion(IProductRequirementDAO.RequestSource + " is not null");

            return this;
        }

        public Criteria andRequestSourceIsNotEmpty() {
            addCriterion(IProductRequirementDAO.RequestSource +
                " is not null AND " + IProductRequirementDAO.RequestSource +
                " <> ''");

            return this;
        }

        public Criteria andRequestSourceIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.RequestSource +
                " is null OR " + IProductRequirementDAO.RequestSource +
                " = '')");

            return this;
        }

        public Criteria andRequestSourceEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " = ", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestSource);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestSourceEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " <>", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " is null OR " +
                IProductRequirementDAO.RequestSource + " <>", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestSource);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestSourceNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " >", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestSource);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestSourceGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " >=", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestSource);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestSourceGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceLessThan(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " <", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestSource);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestSourceLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.RequestSource + " <=", value,
                "requestSource");

            return this;
        }

        public Criteria andRequestSourceLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.RequestSource);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestSourceLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestSource + " like",
                buffer.toString(), "requestSource");

            return this;
        }

        public Criteria andRequestSourceNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.RequestSource + " not like",
                buffer.toString(), "requestSource");

            return this;
        }

        public Criteria andRequestSourceIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestSourceEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestSource + " in",
                    values, "requestSource");

                return this;
            }
        }

        public Criteria andRequestSourceNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestSourceNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.RequestSource + " not in",
                    values, "requestSource");

                return this;
            }
        }

        public Criteria andRequestSourceIn(String[] values) {
            if (values.length == 1) {
                return andRequestSourceEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestSource + " in",
                    Arrays.asList(values), "requestSource");

                return this;
            }
        }

        public Criteria andRequestSourceNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestSourceNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.RequestSource + " not in",
                    Arrays.asList(values), "requestSource");

                return this;
            }
        }

        public Criteria andRequestSourceIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.RequestSource + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestSourceBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestSource + " between",
                value1, value2, "requestSource");

            return this;
        }

        public Criteria andRequestSourceNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.RequestSource + " not between",
                value1, value2, "requestSource");

            return this;
        }

        public Criteria andProposerNameIsNull() {
            addCriterion(IProductRequirementDAO.ProposerName + " is null");

            return this;
        }

        public Criteria andProposerNameIsNotNull() {
            addCriterion(IProductRequirementDAO.ProposerName + " is not null");

            return this;
        }

        public Criteria andProposerNameIsNotEmpty() {
            addCriterion(IProductRequirementDAO.ProposerName +
                " is not null AND " + IProductRequirementDAO.ProposerName +
                " <> ''");

            return this;
        }

        public Criteria andProposerNameIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.ProposerName +
                " is null OR " + IProductRequirementDAO.ProposerName +
                " = '')");

            return this;
        }

        public Criteria andProposerNameEqualTo(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " = ", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " <>", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " is null OR " +
                IProductRequirementDAO.ProposerName + " <>", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " >", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " >=", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameLessThan(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " <", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.ProposerName + " <=", value,
                "proposerName");

            return this;
        }

        public Criteria andProposerNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.ProposerName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProposerNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.ProposerName + " like",
                buffer.toString(), "proposerName");

            return this;
        }

        public Criteria andProposerNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.ProposerName + " not like",
                buffer.toString(), "proposerName");

            return this;
        }

        public Criteria andProposerNameIn(List<String> values) {
            if (values.size() == 1) {
                return andProposerNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ProposerName + " in",
                    values, "proposerName");

                return this;
            }
        }

        public Criteria andProposerNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andProposerNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.ProposerName + " not in",
                    values, "proposerName");

                return this;
            }
        }

        public Criteria andProposerNameIn(String[] values) {
            if (values.length == 1) {
                return andProposerNameEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProposerName + " in",
                    Arrays.asList(values), "proposerName");

                return this;
            }
        }

        public Criteria andProposerNameNotIn(String[] values) {
            if (values.length == 1) {
                return andProposerNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.ProposerName + " not in",
                    Arrays.asList(values), "proposerName");

                return this;
            }
        }

        public Criteria andProposerNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.ProposerName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProposerNameBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.ProposerName + " between",
                value1, value2, "proposerName");

            return this;
        }

        public Criteria andProposerNameNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.ProposerName + " not between",
                value1, value2, "proposerName");

            return this;
        }

        public Criteria andCreatorNameIsNull() {
            addCriterion(IProductRequirementDAO.CreatorName + " is null");

            return this;
        }

        public Criteria andCreatorNameIsNotNull() {
            addCriterion(IProductRequirementDAO.CreatorName + " is not null");

            return this;
        }

        public Criteria andCreatorNameIsNotEmpty() {
            addCriterion(IProductRequirementDAO.CreatorName +
                " is not null AND " + IProductRequirementDAO.CreatorName +
                " <> ''");

            return this;
        }

        public Criteria andCreatorNameIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.CreatorName +
                " is null OR " + IProductRequirementDAO.CreatorName + " = '')");

            return this;
        }

        public Criteria andCreatorNameEqualTo(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " = ", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " <>", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " is null OR " +
                IProductRequirementDAO.CreatorName + " <>", value, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " >", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " >=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThan(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " <", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.CreatorName + " <=", value,
                "creatorName");

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.CreatorName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCreatorNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.CreatorName + " like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.CreatorName + " not like",
                buffer.toString(), "creatorName");

            return this;
        }

        public Criteria andCreatorNameIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.CreatorName + " in",
                    values, "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andCreatorNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.CreatorName + " not in",
                    values, "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.CreatorName + " in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameNotIn(String[] values) {
            if (values.length == 1) {
                return andCreatorNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.CreatorName + " not in",
                    Arrays.asList(values), "creatorName");

                return this;
            }
        }

        public Criteria andCreatorNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.CreatorName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCreatorNameBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.CreatorName + " between",
                value1, value2, "creatorName");

            return this;
        }

        public Criteria andCreatorNameNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.CreatorName + " not between",
                value1, value2, "creatorName");

            return this;
        }

        public Criteria andLastEditorNameIsNull() {
            addCriterion(IProductRequirementDAO.LastEditorName + " is null");

            return this;
        }

        public Criteria andLastEditorNameIsNotNull() {
            addCriterion(IProductRequirementDAO.LastEditorName +
                " is not null");

            return this;
        }

        public Criteria andLastEditorNameIsNotEmpty() {
            addCriterion(IProductRequirementDAO.LastEditorName +
                " is not null AND " + IProductRequirementDAO.LastEditorName +
                " <> ''");

            return this;
        }

        public Criteria andLastEditorNameIsEmpty() {
            addCriterion("(" + IProductRequirementDAO.LastEditorName +
                " is null OR " + IProductRequirementDAO.LastEditorName +
                " = '')");

            return this;
        }

        public Criteria andLastEditorNameEqualTo(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName + " = ", value,
                "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameNotEqualTo(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName + " <>", value,
                "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName +
                " is null OR " + IProductRequirementDAO.LastEditorName + " <>",
                value, "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameGreaterThan(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName + " >", value,
                "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName + " >=", value,
                "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameLessThan(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName + " <", value,
                "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementDAO.LastEditorName + " <=", value,
                "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementDAO.LastEditorName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastEditorNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.LastEditorName + " like",
                buffer.toString(), "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementDAO.LastEditorName + " not like",
                buffer.toString(), "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameIn(List<String> values) {
            if (values.size() == 1) {
                return andLastEditorNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.LastEditorName + " in",
                    values, "lastEditorName");

                return this;
            }
        }

        public Criteria andLastEditorNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andLastEditorNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementDAO.LastEditorName + " not in",
                    values, "lastEditorName");

                return this;
            }
        }

        public Criteria andLastEditorNameIn(String[] values) {
            if (values.length == 1) {
                return andLastEditorNameEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.LastEditorName + " in",
                    Arrays.asList(values), "lastEditorName");

                return this;
            }
        }

        public Criteria andLastEditorNameNotIn(String[] values) {
            if (values.length == 1) {
                return andLastEditorNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementDAO.LastEditorName + " not in",
                    Arrays.asList(values), "lastEditorName");

                return this;
            }
        }

        public Criteria andLastEditorNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementDAO.LastEditorName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastEditorNameBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.LastEditorName + " between",
                value1, value2, "lastEditorName");

            return this;
        }

        public Criteria andLastEditorNameNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementDAO.LastEditorName +
                " not between", value1, value2, "lastEditorName");

            return this;
        }
    }
}
